[INFO] cloning repository https://github.com/kusold/otto
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/kusold/otto" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkusold%2Fotto", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkusold%2Fotto'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] cd50cbe8738c8192fca833c44fc4e64d5a4f17b6
[INFO] testing kusold/otto against master#cced03bfd61a304243a34504618ecec86c17063f for pr-154065-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkusold%2Fotto" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/kusold/otto
[INFO] finished tweaking git repo https://github.com/kusold/otto
[INFO] tweaked toml for git repo https://github.com/kusold/otto written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/kusold/otto on toolchain cced03bfd61a304243a34504618ecec86c17063f
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/kusold/otto already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded clap_builder v4.5.55
[INFO] [stderr]   Downloaded clap v4.5.55
[INFO] [stderr]   Downloaded petname v2.0.2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 53ed58cdd73c09d1ac50a7e7bbbc138bb682b2393f56a405fc1187234501f0e5
[INFO] running `Command { std: "docker" "start" "-a" "53ed58cdd73c09d1ac50a7e7bbbc138bb682b2393f56a405fc1187234501f0e5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "53ed58cdd73c09d1ac50a7e7bbbc138bb682b2393f56a405fc1187234501f0e5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "53ed58cdd73c09d1ac50a7e7bbbc138bb682b2393f56a405fc1187234501f0e5", kill_on_drop: false }`
[INFO] [stdout] 53ed58cdd73c09d1ac50a7e7bbbc138bb682b2393f56a405fc1187234501f0e5
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 4b5609407b97ca8a5cf12669b1f37b2a33db3710e0905ed6749ce0d248dcb3b2
[INFO] running `Command { std: "docker" "start" "-a" "4b5609407b97ca8a5cf12669b1f37b2a33db3710e0905ed6749ce0d248dcb3b2", kill_on_drop: false }`
[INFO] [stderr]    Compiling zerocopy v0.8.34
[INFO] [stderr]    Compiling colorchoice v1.0.4
[INFO] [stderr]    Compiling anstyle v1.0.13
[INFO] [stderr]    Compiling clap_lex v0.7.7
[INFO] [stderr]    Compiling anstyle-parse v0.2.7
[INFO] [stderr]    Compiling anyhow v1.0.100
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling otto-log v0.1.2 (/opt/rustwide/workdir/crates/otto-log)
[INFO] [stderr]    Compiling otto-agent-claude v0.1.2 (/opt/rustwide/workdir/crates/otto-agent-claude)
[INFO] [stderr]    Compiling syn v2.0.114
[INFO] [stderr]    Compiling chrono v0.4.43
[INFO] [stderr]    Compiling otto-beads v0.1.2 (/opt/rustwide/workdir/crates/otto-beads)
[INFO] [stderr]    Compiling itertools v0.14.0
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling anstream v0.6.21
[INFO] [stderr]    Compiling clap_builder v4.5.55
[INFO] [stderr]    Compiling petname v2.0.2
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling clap_derive v4.5.55
[INFO] [stderr]    Compiling clap v4.5.55
[INFO] [stderr]    Compiling otto-tmux v0.1.2 (/opt/rustwide/workdir/crates/otto-tmux)
[INFO] [stderr]    Compiling otto-core v0.1.2 (/opt/rustwide/workdir/crates/otto-core)
[INFO] [stderr]    Compiling otto v0.1.2 (/opt/rustwide/workdir/crates/otto)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 15.61s
[INFO] running `Command { std: "docker" "inspect" "4b5609407b97ca8a5cf12669b1f37b2a33db3710e0905ed6749ce0d248dcb3b2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4b5609407b97ca8a5cf12669b1f37b2a33db3710e0905ed6749ce0d248dcb3b2", kill_on_drop: false }`
[INFO] [stdout] 4b5609407b97ca8a5cf12669b1f37b2a33db3710e0905ed6749ce0d248dcb3b2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] d4be77cb5db73bf997bdde421968824e704ec684fee560112e7195f264f710be
[INFO] running `Command { std: "docker" "start" "-a" "d4be77cb5db73bf997bdde421968824e704ec684fee560112e7195f264f710be", kill_on_drop: false }`
[INFO] [stderr]    Compiling rustix v1.1.3
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling once_cell v1.21.3
[INFO] [stderr]    Compiling otto-log v0.1.2 (/opt/rustwide/workdir/crates/otto-log)
[INFO] [stderr]    Compiling otto-agent-claude v0.1.2 (/opt/rustwide/workdir/crates/otto-agent-claude)
[INFO] [stderr]    Compiling otto-beads v0.1.2 (/opt/rustwide/workdir/crates/otto-beads)
[INFO] [stderr]    Compiling otto-tmux v0.1.2 (/opt/rustwide/workdir/crates/otto-tmux)
[INFO] [stderr]    Compiling otto-core v0.1.2 (/opt/rustwide/workdir/crates/otto-core)
[INFO] [stdout] warning: unused import: `kill_claude`
[INFO] [stdout]   --> crates/otto-agent-claude/tests/integration_tests.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 |     kill_claude, wait_for_claude_exit, wait_for_claude_exit_with_progress, ClaudeError,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling tempfile v3.24.0
[INFO] [stderr]    Compiling otto v0.1.2 (/opt/rustwide/workdir/crates/otto)
[INFO] [stdout] warning: unused variable: `status`
[INFO] [stdout]    --> crates/otto/src/main.rs:984:41
[INFO] [stdout]     |
[INFO] [stdout] 984 |             Some(Commands::Done { mode, status, .. }) => {
[INFO] [stdout]     |                                         ^^^^^^ help: try ignoring the field: `status: _`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 5.17s
[INFO] running `Command { std: "docker" "inspect" "d4be77cb5db73bf997bdde421968824e704ec684fee560112e7195f264f710be", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d4be77cb5db73bf997bdde421968824e704ec684fee560112e7195f264f710be", kill_on_drop: false }`
[INFO] [stdout] d4be77cb5db73bf997bdde421968824e704ec684fee560112e7195f264f710be
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 66935ad5a8e9202ed9abcad163775b053cfd42b33296602101623ea6e76458f4
[INFO] running `Command { std: "docker" "start" "-a" "66935ad5a8e9202ed9abcad163775b053cfd42b33296602101623ea6e76458f4", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `kill_claude`
[INFO] [stderr]   --> crates/otto-agent-claude/tests/integration_tests.rs:13:5
[INFO] [stderr]    |
[INFO] [stderr] 13 |     kill_claude, wait_for_claude_exit, wait_for_claude_exit_with_progress, ClaudeError,
[INFO] [stderr]    |     ^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `otto-agent-claude` (test "integration_tests") generated 1 warning (run `cargo fix --test "integration_tests" -p otto-agent-claude` to apply 1 suggestion)
[INFO] [stderr] warning: unused variable: `status`
[INFO] [stderr]    --> crates/otto/src/main.rs:984:41
[INFO] [stderr]     |
[INFO] [stderr] 984 |             Some(Commands::Done { mode, status, .. }) => {
[INFO] [stderr]     |                                         ^^^^^^ help: try ignoring the field: `status: _`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `otto` (bin "otto" test) generated 1 warning (run `cargo fix --bin "otto" -p otto --tests` to apply 1 suggestion)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.09s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/otto-2a8e8ecc8a0a4729)
[INFO] [stdout] 
[INFO] [stdout] running 54 tests
[INFO] [stdout] test tests::test_args_parsing_done_command_dry_run ... ok
[INFO] [stdout] test tests::test_args_parsing_done_command_nuke ... ok
[INFO] [stdout] test tests::test_args_parsing_done_command_escalated ... ok
[INFO] [stdout] test tests::test_args_parsing_spawn_command ... ok
[INFO] [stdout] test tests::test_args_parsing_done_command_with_status ... ok
[INFO] [stdout] test tests::test_args_parsing_done_command_with_issue ... ok
[INFO] [stdout] test tests::test_args_parsing_attach_with_window ... ok
[INFO] [stdout] test tests::test_args_parsing_ralph_command ... ok
[INFO] [stdout] test tests::test_args_parsing_attach_full_spec ... ok
[INFO] [stdout] test tests::test_args_parsing_pre_flight_check ... ok
[INFO] [stdout] test tests::test_args_parsing_done_command_completed ... ok
[INFO] [stdout] test tests::test_args_parsing_spawn_no_workspace ... ok
[INFO] [stdout] test tests::test_args_parsing_no_command ... ok
[INFO] [stdout] test tests::test_args_parsing_workspace_show ... ok
[INFO] [stdout] test tests::test_args_parsing_workspace_remove ... ok
[INFO] [stdout] test tests::test_args_parsing_workspace_remove_force ... ok
[INFO] [stdout] test tests::test_args_parsing_ralph_with_prompt ... ok
[INFO] [stdout] test tests::test_args_parsing_spawn_with_workspace ... ok
[INFO] [stdout] test tests::test_copy_dir_recursive_nonexistent_source ... ok
[INFO] [stdout] test tests::test_args_parsing_start_command ... ok
[INFO] [stdout] test tests::test_args_parsing_workspace_clean ... ok
[INFO] [stdout] test tests::test_args_parsing_workspace_clean_force ... ok
[INFO] [stdout] test tests::test_args_parsing_attach_command ... ok
[INFO] [stdout] test tests::test_args_parsing_workspace_list ... ok
[INFO] [stdout] test tests::test_copy_dir_recursive_creates_destination ... ok
[INFO] [stdout] test tests::test_copy_dir_recursive_nested ... ok
[INFO] [stdout] test tests::test_format_duration_hours_minutes_seconds ... ok
[INFO] [stdout] test tests::test_format_duration_large_hours ... ok
[INFO] [stdout] test tests::test_copy_dir_recursive_empty ... ok
[INFO] [stdout] test tests::test_detect_ralph_prompt_in_current_repo ... ok
[INFO] [stdout] test tests::test_format_duration_only_minutes ... ok
[INFO] [stdout] test tests::test_copy_dir_recursive_with_files ... ok
[INFO] [stdout] test tests::test_cleanup_workspace ... ok
[INFO] [stdout] test tests::test_format_duration_seconds_only ... ok
[INFO] [stdout] test tests::test_issue_validation_error_messages ... ok
[INFO] [stdout] test tests::test_process_exists_always_running_pid ... ok
[INFO] [stdout] test tests::test_process_exists_nonexistent_pid ... ok
[INFO] [stdout] test tests::test_shutdown_count ... ok
[INFO] [stdout] test tests::test_format_duration_minutes_and_seconds ... ok
[INFO] [stdout] test tests::test_format_duration_only_hours ... ok
[INFO] [stdout] test tests::test_shutdown_signaling ... ok
[INFO] [stdout] test tests::test_process_exists_boundary_values ... ok
[INFO] [stdout] test tests::test_waiting_animation_frame_dots_cycle ... ok
[INFO] [stdout] test tests::test_format_duration_zero ... ok
[INFO] [stdout] test tests::test_process_exists_current_process ... ok
[INFO] [stdout] test tests::test_waiting_animation_frame_consistent_length ... ok
[INFO] [stdout] test tests::test_workspace_default_path_format ... ok
[INFO] [stdout] test tests::test_workspace_info_content_format ... ok
[INFO] [stdout] test tests::test_waiting_animation_frame_no_newlines ... ok
[INFO] [stdout] test tests::test_waiting_animation_frame_starts_with_carriage_return ... ok
[INFO] [stdout] test tests::test_waiting_animation_frame_trailing_spaces_clear_longer_frames ... ok
[INFO] [stdout] test tests::test_process_exists_zero_pid ... ok
[INFO] [stdout] test tests::test_workspace_branch_name_format ... ok
[INFO] [stdout] test tests::test_signal_handler_setup ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 54 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.14s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/otto_agent_claude-9ec8e98409c4e4e3)
[INFO] [stdout] 
[INFO] [stdout] running 108 tests
[INFO] [stdout] test tests::test_build_agent_prompt ... ok
[INFO] [stdout] test tests::test_build_agent_prompt_all_printable_ascii ... ok
[INFO] [stdout] test tests::test_build_agent_prompt_empty ... ok
[INFO] [stdout] test tests::test_build_agent_prompt_very_long ... ok
[INFO] [stdout] test tests::test_build_agent_prompt_with_ampersand ... ok
[INFO] [stdout] test tests::test_build_agent_prompt_does_not_panic ... ok
[INFO] [stdout] test tests::test_build_agent_prompt_with_carriage_return ... ok
[INFO] [stdout] test tests::test_build_agent_prompt_with_brackets ... ok
[INFO] [stdout] test tests::test_build_agent_prompt_with_leading_trailing_spaces ... ok
[INFO] [stdout] test tests::test_build_agent_prompt_with_multiple_special_chars ... ok
[INFO] [stdout] test tests::test_build_agent_prompt_with_newlines ... ok
[INFO] [stdout] test tests::test_build_agent_prompt_with_null ... ok
[INFO] [stdout] test tests::test_build_agent_prompt_with_parenthesis ... ok
[INFO] [stdout] test tests::test_build_agent_prompt_with_pipe ... ok
[INFO] [stdout] test tests::test_build_agent_prompt_with_question_mark ... ok
[INFO] [stdout] test tests::test_build_agent_prompt_with_quotes ... ok
[INFO] [stdout] test tests::test_build_agent_prompt_with_backtick ... ok
[INFO] [stdout] test tests::test_build_agent_prompt_with_semicolon ... ok
[INFO] [stdout] test tests::test_build_agent_prompt_with_wildcard ... ok
[INFO] [stdout] test tests::test_build_agent_prompt_with_tabs ... ok
[INFO] [stdout] test tests::test_claude_error_debug_formats ... ok
[INFO] [stdout] test tests::test_claude_error_display_empty_messages ... ok
[INFO] [stdout] test tests::test_claude_error_display_long_messages ... ok
[INFO] [stdout] test tests::test_claude_error_display_messages ... ok
[INFO] [stdout] test tests::test_claude_error_display_start_failed ... ok
[INFO] [stdout] test tests::test_claude_error_display_unicode_messages ... ok
[INFO] [stdout] test tests::test_claude_error_display_timeout ... ok
[INFO] [stdout] test tests::test_claude_error_display_with_colon ... ok
[INFO] [stdout] test tests::test_claude_error_display_not_available ... ok
[INFO] [stdout] test tests::test_claude_error_display_execution_failed ... ok
[INFO] [stdout] test tests::test_claude_error_display_version_error ... ok
[INFO] [stdout] test tests::test_claude_error_implements_error ... ok
[INFO] [stdout] test tests::test_claude_error_debug_not_available ... ok
[INFO] [stdout] test tests::test_claude_error_debug_timeout ... ok
[INFO] [stdout] test tests::test_claude_error_source_for_variants_with_messages ... ok
[INFO] [stdout] test tests::test_claude_error_timeout_source_none ... ok
[INFO] [stdout] test tests::test_claude_error_source_none ... ok
[INFO] [stdout] test tests::test_escape_shell_arg_comma ... ok
[INFO] [stdout] test tests::test_escape_shell_arg_colon ... ok
[INFO] [stdout] test tests::test_escape_shell_arg_dotdot ... ok
[INFO] [stdout] test tests::test_escape_shell_arg_empty ... ok
[INFO] [stdout] test tests::test_escape_shell_arg_empty_and_whitespace ... ok
[INFO] [stdout] test tests::test_escape_shell_arg_period ... ok
[INFO] [stdout] test tests::test_escape_shell_arg_preserves_content ... ok
[INFO] [stdout] test tests::test_escape_shell_arg_multiple_quotes_in_row ... ok
[INFO] [stdout] test tests::test_escape_shell_arg_semicolon ... ok
[INFO] [stdout] test tests::test_escape_shell_arg_multiple_single_quotes ... ok
[INFO] [stdout] test tests::test_escape_shell_arg_simple ... ok
[INFO] [stdout] test tests::test_escape_shell_arg_with_all_special_chars ... ok
[INFO] [stdout] test tests::test_escape_shell_arg_unicode ... ok
[INFO] [stdout] test tests::test_escape_shell_arg_slash ... ok
[INFO] [stdout] test tests::test_escape_shell_arg_with_at ... ok
[INFO] [stdout] test tests::test_escape_shell_arg_with_exclamation ... ok
[INFO] [stdout] test tests::test_escape_shell_arg_with_hash ... ok
[INFO] [stdout] test tests::test_escape_shell_arg_with_backslash ... ok
[INFO] [stdout] test tests::test_escape_shell_arg_with_percent ... ok
[INFO] [stdout] test tests::test_escape_shell_arg_with_plus ... ok
[INFO] [stdout] test tests::test_escape_shell_arg_with_multiple_quotes ... ok
[INFO] [stdout] test tests::test_escape_shell_arg_with_single_quote ... ok
[INFO] [stdout] test tests::test_escape_shell_arg_with_special_chars ... ok
[INFO] [stdout] test tests::test_escape_shell_arg_with_equals ... ok
[INFO] [stdout] test tests::test_escape_shell_arg_with_spaces ... ok
[INFO] [stdout] test tests::test_get_prompt_default ... ok
[INFO] [stdout] test tests::test_get_prompt_file_not_found ... ok
[INFO] [stdout] test tests::test_get_prompt_empty_file ... ok
[INFO] [stdout] test tests::test_get_prompt_from_file ... ok
[INFO] [stdout] test tests::test_escape_shell_arg_with_underscore ... ok
[INFO] [stdout] test tests::test_escape_shell_arg_with_tilde ... ok
[INFO] [stdout] test tests::test_get_prompt_does_not_panic ... ok
[INFO] [stdout] test tests::test_get_prompt_from_file_with_mixed_line_endings ... ok
[INFO] [stdout] test tests::test_get_prompt_from_file_with_only_bom ... ok
[INFO] [stdout] test tests::test_get_prompt_from_file_with_utf8_content ... ok
[INFO] [stdout] test tests::test_get_prompt_from_file_with_only_newlines ... ok
[INFO] [stdout] test tests::test_get_prompt_from_file_with_crlf ... ok
[INFO] [stdout] test tests::test_get_prompt_from_file_with_bom ... ok
[INFO] [stdout] test tests::test_is_claude_process_nonexistent ... ok
[INFO] [stdout] test tests::test_get_prompt_from_file_preserves_internal_spaces ... ok
[INFO] [stdout] test tests::test_is_claude_process_with_current_pid ... ok
[INFO] [stdout] test tests::test_is_claude_process_one ... ok
[INFO] [stdout] test tests::test_is_claude_process_with_special_pids ... ok
[INFO] [stdout] test tests::test_is_claude_process_with_large_number ... ok
[INFO] [stdout] test tests::test_is_claude_process_with_max_pid ... ok
[INFO] [stdout] test tests::test_otto_agent_prompt_constant ... ok
[INFO] [stdout] test tests::test_otto_agent_prompt_structure ... ok
[INFO] [stdout] test tests::test_is_claude_process_zero ... ok
[INFO] [stdout] test tests::test_get_prompt_file_with_various_encodings ... ok
[INFO] [stdout] test tests::test_build_agent_prompt_with_newline_sequence ... ok
[INFO] [stdout] test tests::test_get_claude_version_error_handling ... ok
[INFO] [stdout] test tests::test_get_claude_version_returns_result ... ok
[INFO] [stdout] test tests::test_wait_for_claude_exit_with_progress_only_abort_callback ... ok
[INFO] [stdout] test tests::test_get_prompt_from_file_with_whitespace ... ok
[INFO] [stdout] test tests::test_wait_for_claude_exit_with_progress_none_callbacks ... ok
[INFO] [stdout] test tests::test_is_claude_running_returns_boolean ... ok
[INFO] [stdout] test tests::test_wait_for_claude_exit_with_progress_zero_timeout_with_callbacks ... ok
[INFO] [stdout] test tests::test_wait_for_claude_exit_zero_timeout ... ok
[INFO] [stdout] test tests::test_wait_for_claude_exit_with_progress_timeout_path ... ok
[INFO] [stdout] test tests::test_wait_for_claude_exit_with_progress_only_progress_callback ... ok
[INFO] [stdout] test tests::test_is_claude_available_returns_boolean ... ok
[INFO] [stdout] test tests::test_wait_for_claude_exit_immediate_when_not_running ... ok
[INFO] [stdout] test tests::test_wait_for_claude_exit_with_progress_both_callbacks ... ok
[INFO] [stdout] test tests::test_wait_for_claude_exit_short_timeout ... ok
[INFO] [stdout] test tests::test_wait_for_claude_exit_with_progress_abort_does_not_kill ... ok
[INFO] [stdout] test tests::test_claude_error_display_all_variants ... ok
[INFO] [stdout] test tests::test_is_claude_running_false_when_no_processes ... ok
[INFO] [stdout] test tests::test_is_claude_available_with_version_check ... ok
[INFO] [stdout] test tests::test_is_claude_available_false_for_nonexistent_command ... ok
[INFO] [stdout] test tests::test_wait_for_claude_exit_with_progress_progress_callback_called ... ok
[INFO] [stdout] test tests::test_is_claude_running_consistency ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 108 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.32s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/integration_tests.rs (/opt/rustwide/target/debug/deps/integration_tests-6bb394c599d8c8e4)
[INFO] [stdout] 
[INFO] [stdout] running 27 tests
[INFO] [stdout] test test_build_agent_prompt_integration ... ok
[INFO] [stdout] test test_claude_error_debug ... ok
[INFO] [stdout] test test_build_agent_prompt_with_unicode ... ok
[INFO] [stdout] test test_claude_error_error_trait ... ok
[INFO] [stdout] test test_claude_error_display_with_empty_messages ... ok
[INFO] [stdout] test test_claude_execution_failed ... ok
[INFO] [stdout] test test_escape_shell_arg_with_newlines_in_middle ... ok
[INFO] [stdout] test test_escape_shell_arg_with_pipes ... ok
[INFO] [stdout] test test_escape_shell_arg_with_backticks ... ok
[INFO] [stdout] test test_claude_error_start_failed ... ok
[INFO] [stdout] test test_get_prompt_from_file_with_special_chars ... ok
[INFO] [stdout] test test_is_claude_process_with_fake_cmdline ... ok
[INFO] [stdout] test test_get_prompt_with_file_containing_only_whitespace ... ok
[INFO] [stdout] test test_get_prompt_from_temp_file ... ok
[INFO] [stdout] test test_is_claude_available ... ok
[INFO] [stdout] test test_get_claude_version ... ok
[INFO] [stdout] test test_claude_error_display ... ok
[INFO] [stdout] test test_wait_for_claude_exit_immediate ... ok
[INFO] [stdout] test test_wait_for_claude_exit_short_timeout ... ok
[INFO] [stdout] test test_build_agent_prompt_with_emoji ... ok
[INFO] [stdout] test test_wait_for_claude_exit_with_progress_no_callback ... ok
[INFO] [stdout] test test_is_claude_running ... ok
[INFO] [stdout] test test_wait_for_claude_exit_with_immediate_abort ... ok
[INFO] [stdout] test test_wait_for_claude_exit_with_abort_callback ... ok
[INFO] [stdout] test test_wait_for_claude_exit_with_progress_callback ... ok
[INFO] [stdout] test test_wait_for_claude_exit_with_both_callbacks ... ok
[INFO] [stdout] test test_wait_for_claude_exit_with_progress_and_no_abort ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 27 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.13s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/otto_beads-be5880d97d172ca0)
[INFO] [stdout] 
[INFO] [stdout] running 23 tests
[INFO] [stdout] test tests::test_beads_error_display ... ok
[INFO] [stdout] test tests::test_beads_error_downcasting ... ok
[INFO] [stdout] test tests::test_beads_error_impls ... ok
[INFO] [stdout] test tests::test_beads_error_source ... ok
[INFO] [stdout] test tests::test_beads_not_available_error_code ... ok
[INFO] [stdout] test tests::test_beads_result_map_and_or_else ... ok
[INFO] [stdout] test tests::test_beads_result_variants ... ok
[INFO] [stdout] test tests::test_beads_result_type_exists ... ok
[INFO] [stdout] test tests::test_beads_result_with_ok ... ok
[INFO] [stdout] test tests::test_beads_result_with_err ... ok
[INFO] [stdout] test tests::test_error_equality ... ok
[INFO] [stdout] test tests::test_error_matching ... ok
[INFO] [stdout] test tests::test_error_message_formatting ... ok
[INFO] [stdout] test tests::test_error_variants_are_exhaustive ... ok
[INFO] [stdout] test tests::test_execution_failed_error_code ... ok
[INFO] [stdout] test tests::test_has_ready_tasks_function_exists ... ok
[INFO] [stdout] test tests::test_has_ready_tasks_return_variants ... ok
[INFO] [stdout] test tests::test_has_ready_tasks_parses_output_correctly ... ok
[INFO] [stdout] test tests::test_not_initialized_error_code ... ok
[INFO] [stdout] test tests::test_has_ready_tasks_detects_initialized_error ... ok
[INFO] [stdout] test tests::test_has_ready_tasks_checks_beads_availability ... ok
[INFO] [stdout] test tests::test_has_ready_tasks_returns_result ... ok
[INFO] [stdout] test tests::test_has_ready_tasks_returns_bool_when_ok ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 23 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.16s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/otto_core-aae581b5b385970d)
[INFO] [stdout] 
[INFO] [stdout] running 43 tests
[INFO] [stdout] test tests::test_agent_error_display_agent_start_failed ... ok
[INFO] [stdout] test tests::test_agent_error_display_agent_timeout ... ok
[INFO] [stdout] test tests::test_agent_error_display_prompt_file_error ... ok
[INFO] [stdout] test tests::test_agent_error_source ... ok
[INFO] [stdout] test tests::test_agent_error_display_tmux_error ... ok
[INFO] [stdout] test tests::test_agent_error_variants_exhaustive ... ok
[INFO] [stdout] test tests::test_agent_error_display_claude_not_available ... ok
[INFO] [stdout] test tests::test_agent_result_type_alias ... ok
[INFO] [stdout] test tests::test_default_timeout ... ok
[INFO] [stdout] test tests::test_format_duration_edge_cases ... ok
[INFO] [stdout] test tests::test_format_duration_hours_and_minutes ... ok
[INFO] [stdout] test tests::test_format_duration_hours_minutes_seconds ... ok
[INFO] [stdout] test tests::test_format_duration_hours_and_seconds ... ok
[INFO] [stdout] test tests::test_format_duration_minutes_and_seconds ... ok
[INFO] [stdout] test tests::test_format_duration_only_minutes ... ok
[INFO] [stdout] test tests::test_format_duration_seconds_only ... ok
[INFO] [stdout] test tests::test_cleanup_stuck_windows_preserves_states ... ok
[INFO] [stdout] test tests::test_from_claude_error_timeout ... ok
[INFO] [stdout] test tests::test_from_claude_error_version_error ... ok
[INFO] [stdout] test tests::test_from_claude_error_execution_failed ... ok
[INFO] [stdout] test tests::test_format_duration_hours_only ... ok
[INFO] [stdout] test tests::test_cleanup_stuck_windows_with_empty_states ... ok
[INFO] [stdout] test tests::test_format_duration_zero ... ok
[INFO] [stdout] test tests::test_from_claude_error_not_available ... ok
[INFO] [stdout] test tests::test_from_claude_error_start_failed ... ok
[INFO] [stdout] test tests::test_cleanup_stuck_windows_with_existing_states ... ok
[INFO] [stdout] test tests::test_from_tmux_error ... ok
[INFO] [stdout] test tests::test_wait_with_progress_with_progress_callback ... ok
[INFO] [stdout] test tests::test_window_state_defaults ... ok
[INFO] [stdout] test tests::test_window_state_hash_updates ... ok
[INFO] [stdout] test tests::test_launch_agent_default_wrapper ... ok
[INFO] [stdout] test tests::test_is_claude_active_in_pane_with_valid_pane ... ok
[INFO] [stdout] test tests::test_wait_with_progress_with_abort_callback ... ok
[INFO] [stdout] test tests::test_wait_for_claude_in_pane_immediate_timeout ... ok
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/otto_log-6c7e935737e4363e)
[INFO] [stdout] test tests::test_is_claude_active_in_pane_with_custom_pane ... ok
[INFO] [stdout] test tests::test_is_claude_active_in_pane_with_default_pane ... ok
[INFO] [stdout] test tests::test_wait_with_progress_with_both_callbacks ... ok
[INFO] [stdout] test tests::test_window_state_with_hash ... ok
[INFO] [stdout] test tests::test_wait_for_claude_in_pane_timeout_duration ... ok
[INFO] [stdout] test tests::test_wait_with_progress_without_callbacks ... ok
[INFO] [stdout] test tests::test_log_watchdog_timestamp_format ... ok
[INFO] [stdout] test tests::test_log_watchdog_multiple_messages ... ok
[INFO] [stdout] test tests::test_log_watchdog_creates_file ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 43 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 27 tests
[INFO] [stderr] ✗ Error: error
[INFO] [stderr] ⚠ Warning: warning
[INFO] [stderr] ℹ Info: info
[INFO] [stderr] → progress✗ Error: First error
[INFO] [stderr] ⚠ Warning: Second warning
[INFO] [stderr] ℹ Info: Third info
[INFO] [stderr] → Fourth progress✗ Error: Test error message
[INFO] [stderr] ✗ Error: 
[INFO] [stderr] ✗ Error: This is a very long error message that spans multiple lines and contains lots of information about what went wrong. This is a very long error message that spans multiple lines and contains lots of information about what went wrong. This is a very long error message that spans multiple lines and contains lots of information about what went wrong. This is a very long error message that spans multiple lines and contains lots of information about what went wrong. This is a very long error message that spans multiple lines and contains lots of information about what went wrong. This is a very long error message that spans multiple lines and contains lots of information about what went wrong. This is a very long error message that spans multiple lines and contains lots of information about what went wrong. This is a very long error message that spans multiple lines and contains lots of information about what went wrong. This is a very long error message that spans multiple lines and contains lots of information about what went wrong. This is a very long error message that spans multiple lines and contains lots of information about what went wrong. 
[INFO] [stderr] ✗ Error: Error with special chars: 	
[INFO] [stderr] 
"'\
[INFO] [stderr] ✗ Error: Error with unicode: 🚨 💥 ⚠️
[INFO] [stderr] ✗ Error: Error
[INFO] [stderr] with
[INFO] [stderr] newlines
[INFO] [stderr] ⚠ Warning: Warning
[INFO] [stderr] with
[INFO] [stderr] newlines
[INFO] [stderr] ℹ Info: Info
[INFO] [stderr] with
[INFO] [stderr] newlines
[INFO] [stderr] ℹ Info: Test info message
[INFO] [stderr] ℹ Info: This is a very long info message that spans multiple lines and contains lots of information about what is happening. This is a very long info message that spans multiple lines and contains lots of information about what is happening. This is a very long info message that spans multiple lines and contains lots of information about what is happening. This is a very long info message that spans multiple lines and contains lots of information about what is happening. This is a very long info message that spans multiple lines and contains lots of information about what is happening. This is a very long info message that spans multiple lines and contains lots of information about what is happening. This is a very long info message that spans multiple lines and contains lots of information about what is happening. This is a very long info message that spans multiple lines and contains lots of information about what is happening. This is a very long info message that spans multiple lines and contains lots of information about what is happening. This is a very long info message that spans multiple lines and contains lots of information about what is happening. 
[INFO] [stderr] ℹ Info: 
[INFO] [stderr] ℹ Info: Info with special chars: 	
[INFO] [stderr] 
"'\
[INFO] [stdout] test color::tests::test_all_print_functions_are_callable ... ok
[INFO] [stdout] test color::tests::test_multiple_prints_in_sequence ... ok
[INFO] [stdout] test color::tests::test_print_error_doesnt_crash ... ok
[INFO] [stderr] ℹ Info: Info with unicode: ℹ️ 💡 📝
[INFO] [stdout] test color::tests::test_print_error_function_exists ... ok
[INFO] [stderr] → Test progress message→ → This is a very long progress message that shows the current status of the operation. This is a very long progress message that shows the current status of the operation. This is a very long progress message that shows the current status of the operation. This is a very long progress message that shows the current status of the operation. This is a very long progress message that shows the current status of the operation. This is a very long progress message that shows the current status of the operation. This is a very long progress message that shows the current status of the operation. This is a very long progress message that shows the current status of the operation. This is a very long progress message that shows the current status of the operation. This is a very long progress message that shows the current status of the operation. → Progress with special chars: 	
[INFO] [stdout] test color::tests::test_print_error_with_empty_message ... ok
[INFO] [stderr] 
"'\→ Progress with unicode: ⏳ 🚀 📊⚠ Warning: Test warning message
[INFO] [stdout] test color::tests::test_print_error_with_long_message ... ok
[INFO] [stderr] ⚠ Warning: 
[INFO] [stdout] test color::tests::test_print_error_with_special_chars ... ok
[INFO] [stderr] ⚠ Warning: This is a very long warning message that spans multiple lines and contains lots of information about what might go wrong. This is a very long warning message that spans multiple lines and contains lots of information about what might go wrong. This is a very long warning message that spans multiple lines and contains lots of information about what might go wrong. This is a very long warning message that spans multiple lines and contains lots of information about what might go wrong. This is a very long warning message that spans multiple lines and contains lots of information about what might go wrong. This is a very long warning message that spans multiple lines and contains lots of information about what might go wrong. This is a very long warning message that spans multiple lines and contains lots of information about what might go wrong. This is a very long warning message that spans multiple lines and contains lots of information about what might go wrong. This is a very long warning message that spans multiple lines and contains lots of information about what might go wrong. This is a very long warning message that spans multiple lines and contains lots of information about what might go wrong. 
[INFO] [stdout] test color::tests::test_print_error_with_unicode ... ok
[INFO] [stderr] ⚠ Warning: Warning with special chars: 	
[INFO] [stdout] test color::tests::test_print_functions_with_newlines ... ok
[INFO] [stderr] 
"'\
[INFO] [stdout] test color::tests::test_print_info_function_exists ... ok
[INFO] [stderr] ⚠ Warning: Warning with unicode: ⚠️ 🚸 🔔
[INFO] [stdout] test color::tests::test_print_info_doesnt_crash ... ok
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/otto_tmux-12e27185ac0e74c8)
[INFO] [stdout] test color::tests::test_print_info_with_long_message ... ok
[INFO] [stdout] test color::tests::test_print_info_with_empty_message ... ok
[INFO] [stdout] test color::tests::test_print_info_with_special_chars ... ok
[INFO] [stdout] test color::tests::test_print_info_with_unicode ... ok
[INFO] [stdout] test color::tests::test_print_progress_doesnt_crash ... ok
[INFO] [stdout] test color::tests::test_print_progress_function_exists ... ok
[INFO] [stdout] test color::tests::test_print_progress_with_empty_message ... ok
[INFO] [stdout] test color::tests::test_print_progress_with_long_message ... ok
[INFO] [stdout] test color::tests::test_print_progress_with_special_chars ... ok
[INFO] [stdout] test color::tests::test_print_progress_with_unicode ... ok
[INFO] [stdout] test color::tests::test_print_warning_doesnt_crash ... ok
[INFO] [stdout] test color::tests::test_print_warning_function_exists ... ok
[INFO] [stdout] test color::tests::test_print_warning_with_empty_message ... ok
[INFO] [stdout] test color::tests::test_print_warning_with_long_message ... ok
[INFO] [stdout] test color::tests::test_print_warning_with_special_chars ... ok
[INFO] [stdout] test color::tests::test_print_warning_with_unicode ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 27 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 43 tests
[INFO] [stdout] test tests::test_agent_window_prefix_constant ... ok
[INFO] [stdout] test tests::test_all_error_variants_exist ... ok
[INFO] [stdout] test tests::test_capture_pane_function_exists ... ok
[INFO] [stdout] test tests::test_attach_to_window_function_exists ... ok
[INFO] [stdout] test tests::test_create_agent_window_function_exists ... ok
[INFO] [stdout] test tests::test_create_named_window_function_exists ... ok
[INFO] [stdout] test tests::test_create_session_function_exists ... ok
[INFO] [stdout] test tests::test_ensure_otto_session_function_exists ... ok
[INFO] [stdout] test tests::test_ensure_session_function_exists ... ok
[INFO] [stdout] test tests::test_constants_are_correct ... ok
[INFO] [stdout] test tests::test_error_matching ... ok
[INFO] [stdout] test tests::test_error_messages_are_descriptive ... ok
[INFO] [stdout] test tests::test_find_idle_agent_window_function_exists ... ok
[INFO] [stdout] test tests::test_generate_agent_window_name_format ... ok
[INFO] [stdout] test tests::test_get_or_create_agent_window_function_exists ... ok
[INFO] [stdout] test tests::test_generate_agent_window_names_unique ... ok
[INFO] [stdout] test tests::test_get_pane_command_function_exists ... ok
[INFO] [stdout] test tests::test_get_pane_spec_format ... ok
[INFO] [stdout] test tests::test_get_pane_pid_function_exists ... ok
[INFO] [stdout] test tests::test_kill_window_function_exists ... ok
[INFO] [stdout] test tests::test_list_windows_function_exists ... ok
[INFO] [stdout] test tests::test_list_windows_by_pattern_starts_with_not_contains ... ok
[INFO] [stdout] test tests::test_pane_spec_format_validation ... ok
[INFO] [stdout] test tests::test_pane_spec_edge_cases ... ok
[INFO] [stdout] test tests::test_send_command_to_window_function_exists ... ok
[INFO] [stdout] test tests::test_session_name_constant ... ok
[INFO] [stdout] test tests::test_process_name_check_function_exists ... ok
[INFO] [stdout] test tests::test_session_exists_function_exists ... ok
[INFO] [stdout] test tests::test_send_command_function_exists ... ok
[INFO] [stdout] test tests::test_tmux_error_impls ... ok
[INFO] [stdout] test tests::test_tmux_result_map_and_or_else ... ok
[INFO] [stdout] test tests::test_tmux_error_display ... ok
[INFO] [stdout] test tests::test_list_windows_by_pattern_function_exists ... ok
[INFO] [stdout] test tests::test_send_otto_command_function_exists ... ok
[INFO] [stdout] test tests::test_multiple_error_variants_match ... ok
[INFO] [stdout] test tests::test_is_tmux_available_returns_bool ... ok
[INFO] [stdout] test tests::test_tmux_result_operations ... ok
[INFO] [stdout] test tests::test_tmux_result_with_ok ... ok
[INFO] [stdout] test tests::test_tmux_result_type_exists ... ok
[INFO] [stdout] test tests::test_tmux_result_with_err ... ok
[INFO] [stdout] test tests::test_window_exists_function_exists ... ok
[INFO] [stdout] test tests::test_window_name_generation_consistency ... ok
[INFO] [stdout] test tests::test_invalid_pane_spec_rejected ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- tests::test_invalid_pane_spec_rejected stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'tests::test_invalid_pane_spec_rejected' (371) panicked at crates/otto-tmux/src/lib.rs:876:9:
[INFO] [stdout] assertion failed: matches!(result, Err(TmuxError::InvalidPaneSpec(_)))
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x63e68cf8cef8 - std[929523f510218772]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x63e68cf8cef8 - std[929523f510218772]::backtrace_rs::backtrace::trace_unsynchronized::<std[929523f510218772]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x63e68cf8cef8 - std[929523f510218772]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x63e68cf8cef8 - <<std[929523f510218772]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[28b146924c2f19c6]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x63e68cfa145a - <core[28b146924c2f19c6]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x63e68cfa145a - core[28b146924c2f19c6]::fmt::write
[INFO] [stdout]    6:     0x63e68cf91712 - std[929523f510218772]::io::default_write_fmt::<alloc[95e62e727ddf147d]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/io/mod.rs:622:11
[INFO] [stdout]    7:     0x63e68cf91712 - <alloc[95e62e727ddf147d]::vec::Vec<u8> as std[929523f510218772]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/io/mod.rs:1977:13
[INFO] [stdout]    8:     0x63e68cf6bfa6 - <std[929523f510218772]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x63e68cf6bfa6 - std[929523f510218772]::panicking::default_hook::{closure#0}
[INFO] [stderr] error: test failed, to rerun pass `-p otto-tmux --lib`
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x63e68cf85449 - std[929523f510218772]::panicking::default_hook
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x63e68cee588c - <alloc[95e62e727ddf147d]::boxed::Box<dyn for<'a, 'b> core[28b146924c2f19c6]::ops::function::Fn<(&'a std[929523f510218772]::panic::PanicHookInfo<'b>,), Output = ()> + core[28b146924c2f19c6]::marker::Sync + core[28b146924c2f19c6]::marker::Send> as core[28b146924c2f19c6]::ops::function::Fn<(&std[929523f510218772]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/alloc/src/boxed.rs:2291:9
[INFO] [stdout]   12:     0x63e68cee588c - test[6ec0502068880816]::test_main_inner::<test[6ec0502068880816]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x63e68cf85602 - <alloc[95e62e727ddf147d]::boxed::Box<dyn for<'a, 'b> core[28b146924c2f19c6]::ops::function::Fn<(&'a std[929523f510218772]::panic::PanicHookInfo<'b>,), Output = ()> + core[28b146924c2f19c6]::marker::Sync + core[28b146924c2f19c6]::marker::Send> as core[28b146924c2f19c6]::ops::function::Fn<(&std[929523f510218772]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/alloc/src/boxed.rs:2291:9
[INFO] [stdout]   14:     0x63e68cf85602 - std[929523f510218772]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x63e68cf6c094 - std[929523f510218772]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/panicking.rs:691:13
[INFO] [stdout]   16:     0x63e68cf61269 - std[929523f510218772]::sys::backtrace::__rust_end_short_backtrace::<std[929523f510218772]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x63e68cf6cd7d - __rustc[acf6043c977865fb]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x63e68cfa1bec - core[28b146924c2f19c6]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x63e68cfa1bb2 - core[28b146924c2f19c6]::panicking::panic
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/core/src/panicking.rs:150:5
[INFO] [stdout]   20:     0x63e68ced51da - otto_tmux[9f5cd0cb54d87c7]::tests::test_invalid_pane_spec_rejected
[INFO] [stdout]                                at /opt/rustwide/workdir/crates/otto-tmux/src/lib.rs:876:9
[INFO] [stdout]   21:     0x63e68ced2177 - otto_tmux[9f5cd0cb54d87c7]::tests::test_invalid_pane_spec_rejected::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/crates/otto-tmux/src/lib.rs:873:41
[INFO] [stdout]   22:     0x63e68ced0da6 - <otto_tmux[9f5cd0cb54d87c7]::tests::test_invalid_pane_spec_rejected::{closure#0} as core[28b146924c2f19c6]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x63e68ced896b - <fn() -> core[28b146924c2f19c6]::result::Result<(), alloc[95e62e727ddf147d]::string::String> as core[28b146924c2f19c6]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x63e68ced896b - test[6ec0502068880816]::__rust_begin_short_backtrace::<core[28b146924c2f19c6]::result::Result<(), alloc[95e62e727ddf147d]::string::String>, fn() -> core[28b146924c2f19c6]::result::Result<(), alloc[95e62e727ddf147d]::string::String>>
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/test/src/lib.rs:724:18
[INFO] [stdout]   25:     0x63e68cee61e5 - test[6ec0502068880816]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/test/src/lib.rs:747:74
[INFO] [stdout]   26:     0x63e68cee61e5 - <core[28b146924c2f19c6]::panic::unwind_safe::AssertUnwindSafe<test[6ec0502068880816]::run_test_in_process::{closure#0}> as core[28b146924c2f19c6]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   27:     0x63e68cee61e5 - std[929523f510218772]::panicking::catch_unwind::do_call::<core[28b146924c2f19c6]::panic::unwind_safe::AssertUnwindSafe<test[6ec0502068880816]::run_test_in_process::{closure#0}>, core[28b146924c2f19c6]::result::Result<(), alloc[95e62e727ddf147d]::string::String>>
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/panicking.rs:581:40
[INFO] [stdout]   28:     0x63e68cee61e5 - std[929523f510218772]::panicking::catch_unwind::<core[28b146924c2f19c6]::result::Result<(), alloc[95e62e727ddf147d]::string::String>, core[28b146924c2f19c6]::panic::unwind_safe::AssertUnwindSafe<test[6ec0502068880816]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/panicking.rs:544:19
[INFO] [stdout]   29:     0x63e68cee61e5 - std[929523f510218772]::panic::catch_unwind::<core[28b146924c2f19c6]::panic::unwind_safe::AssertUnwindSafe<test[6ec0502068880816]::run_test_in_process::{closure#0}>, core[28b146924c2f19c6]::result::Result<(), alloc[95e62e727ddf147d]::string::String>>
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/panic.rs:359:14
[INFO] [stdout]   30:     0x63e68cee61e5 - test[6ec0502068880816]::run_test_in_process
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/test/src/lib.rs:747:27
[INFO] [stdout]   31:     0x63e68cee61e5 - test[6ec0502068880816]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/test/src/lib.rs:668:43
[INFO] [stdout]   32:     0x63e68cee0d44 - test[6ec0502068880816]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/test/src/lib.rs:698:41
[INFO] [stdout]   33:     0x63e68cee0d44 - std[929523f510218772]::sys::backtrace::__rust_begin_short_backtrace::<test[6ec0502068880816]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   34:     0x63e68cee9262 - std[929523f510218772]::thread::lifecycle::spawn_unchecked::<test[6ec0502068880816]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   35:     0x63e68cee9262 - <core[28b146924c2f19c6]::panic::unwind_safe::AssertUnwindSafe<std[929523f510218772]::thread::lifecycle::spawn_unchecked<test[6ec0502068880816]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[28b146924c2f19c6]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   36:     0x63e68cee9262 - std[929523f510218772]::panicking::catch_unwind::do_call::<core[28b146924c2f19c6]::panic::unwind_safe::AssertUnwindSafe<std[929523f510218772]::thread::lifecycle::spawn_unchecked<test[6ec0502068880816]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/panicking.rs:581:40
[INFO] [stdout]   37:     0x63e68cee9262 - std[929523f510218772]::panicking::catch_unwind::<(), core[28b146924c2f19c6]::panic::unwind_safe::AssertUnwindSafe<std[929523f510218772]::thread::lifecycle::spawn_unchecked<test[6ec0502068880816]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/panicking.rs:544:19
[INFO] [stdout]   38:     0x63e68cee9262 - std[929523f510218772]::panic::catch_unwind::<core[28b146924c2f19c6]::panic::unwind_safe::AssertUnwindSafe<std[929523f510218772]::thread::lifecycle::spawn_unchecked<test[6ec0502068880816]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/panic.rs:359:14
[INFO] [stdout]   39:     0x63e68cee9262 - std[929523f510218772]::thread::lifecycle::spawn_unchecked::<test[6ec0502068880816]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   40:     0x63e68cee9262 - <std[929523f510218772]::thread::lifecycle::spawn_unchecked<test[6ec0502068880816]::run_test::{closure#1}, ()>::{closure#1} as core[28b146924c2f19c6]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   41:     0x63e68cf8c85f - <alloc[95e62e727ddf147d]::boxed::Box<dyn core[28b146924c2f19c6]::ops::function::FnOnce<(), Output = ()> + core[28b146924c2f19c6]::marker::Send> as core[28b146924c2f19c6]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/alloc/src/boxed.rs:2277:9
[INFO] [stdout]   42:     0x63e68cf8c85f - <std[929523f510218772]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   43:     0x721fe3818aa4 - <unknown>
[INFO] [stdout]   44:     0x721fe38a5a64 - clone
[INFO] [stdout]   45:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     tests::test_invalid_pane_spec_rejected
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 42 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.11s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "66935ad5a8e9202ed9abcad163775b053cfd42b33296602101623ea6e76458f4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "66935ad5a8e9202ed9abcad163775b053cfd42b33296602101623ea6e76458f4", kill_on_drop: false }`
[INFO] [stdout] 66935ad5a8e9202ed9abcad163775b053cfd42b33296602101623ea6e76458f4
